
package org.scache.serialization;

import java.io.Serializable;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.scache.serialization.hessian.HessianSerializer;
import org.scache.serialization.json.JSONSerializer;


/**
 * 序列化接口，实现要求<b>线程安全</b>
 * <ul>
 * <li>序列化实现有差异，建议序列化对象符合JavaBean规范（pojo）</li>
 * </ul>
 * 
 * @author 君枫
 * @version 1.0
 * @since 2014年3月10日 下午3:49:30
 * @category com.linkage.toptea.util.serialization<br>
 */
public interface ISerializer
{

	ISerializer JSONSerializer = new JSONSerializer();
	ISerializer HessianSerializer = new HessianSerializer();
	Log log = LogFactory.getLog(ISerializer.class);

	/**
	 * 对象序列化
	 * 
	 * @param t
	 * @return 序列化后字节数组
	 */
	byte[] serialize(Serializable s);

	/**
	 * 对象反序列化
	 * 
	 * @param bytes
	 * @param 类型Class对象
	 * @return 反序列化后的对象
	 */
	<T> T deserialize(byte[] bytes);
}
